package com.nineclock.api.system.controller;

import com.nineclock.common.entity.PageResult;
import com.nineclock.common.entity.Result;
import com.nineclock.dto.DepartmentOrUserSimpleDTO;
import com.nineclock.dto.SysCompanyUserDTO;
import com.nineclock.dto.SysDepartmentDTO;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import org.springframework.web.multipart.MultipartFile;

import java.util.List;

@Api("组织架构")
public interface SysOrganizationControllerApi {
    @ApiOperation("查询组织下所有员工")
    public Result<List<SysCompanyUserDTO>> findAllMembers();

    @ApiOperation("获取组织架构列表")
    public Result<List<SysDepartmentDTO>> findDepartment();

    @ApiOperation("获取部门成员列表")
    public Result<PageResult<SysCompanyUserDTO>> findDepartmentUser(Long departmentId, Integer page, Integer pageSize, String keyword);

    @ApiOperation("获取当前企业的所有部门")
    public Result<List<Long>> findDepartmentByCompanyId();

    @ApiOperation("查询考勤下的部门相关的人数")
    public Result<Integer> findAttendAndCompanyUserCount(List<Long> departmentId);

    @ApiOperation("获取部门简单列表")
    public Result<List<DepartmentOrUserSimpleDTO>> findDepartmentSimple( Long id, Integer includeMember);

    @ApiOperation("直接导入员工数据")
    public Result uploadExcel(MultipartFile excelFile);

    @ApiOperation("根据员工ID , 依次获取其 所在部门的ID及上层部门ID")
    public Result<List<Long>> findDepartmentIdByCompanyUserId(Long companyUserId);
}
